/**
  * Author: Mei
  * Date: 2020-12-30 19:13
  * Description:
  *
  *
  */
#include "head.h"

template<typename F, typename ... Args>
auto FuncWrapper(F &&f, Args &&... args) -> decltype(f(forward<Args>(args)...)) {
    return f(forward<Args>(args)...);
};

void test0() {
    cout << "void" << endl;
}

int test1() {
    return 1;
}

int test2(int x) {
    return x;
}

string test3(string s1, string s2) {
    return s1 + s2;
}

int main() {
    string a = "hello";
    string b = " world";
    cout<<FuncWrapper(test3, a, b);


    return 0;
}